﻿<%@ Page Title="" Language="C#" MasterPageFile="~/Main.Master" AutoEventWireup="true"
    CodeBehind="ActualizarProgramacionRuta.aspx.cs" Inherits="WebCruzDelSur.ActualizarProgramacionRuta" %>

<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server">
    <script>
        
        function f_regresar() {
            location.href = 'BuscarProgramacionRuta.aspx';
        }

        function getDisabledControls() {
            $("#Button3").css("visibility", "hidden");
            $("#Button4").css("visibility", "hidden");
        }

        function f_validacionDatos(){
            var fechaOrigen = $("#<%=txtFechaPartida.ClientID %>").val(); 
            var horaOrigen = $("#<%=txtHoraPartida.ClientID %>").val();
            var conductorPrincipal = $("#<%=txtCodigoConductorPrincipal.ClientID %>").val();
            var conductorReemplazo = $("#<%=txtCodigoConductorReemplazo.ClientID %>").val();
            var bus = $("#<%=txtCodigoBus.ClientID %>").val();
            var errores = "";

            if (conductorPrincipal == "")
                errores += "Seleccionar un conductor principal\n";

            if (conductorReemplazo == "")
                errores += "Seleccionar un conductor de reemplazo\n";

            if (bus == "")
                errores += "Seleccionar un bus\n";

            if (fechaOrigen == "")
                errores += "Seleccionar una fecha de partida\n";

            if (horaOrigen == "")
                errores += "Seleccionar una hora de partida\n";

            if (errores == "")
            {
                return true;
            }
            else
            {
                ShowMessageJustAlert(errores);
                return false;
            }
        }

        $(document).ready(function () {
            $(function () {
                $('#<%=txtFechaPartida.ClientID%>').change(function () {
                    f_generaFechaLlegada();
                }).triggerHandler('change');

                //change(function () {
                $('#<%=txtHoraPartida.ClientID%>').focusout(function () {
                    f_generaFechaLlegada();
                }).triggerHandler('change');

                $("#dialogError").bind("dialogclose", function (event, ui) {
                    location.href = 'Index.aspx';
                });                
                
                //CALCULADO
                //$("[id$=txtFechaLlegada]").datepicker({
                //    showOn: 'button',
                //    buttonImageOnly: true,
                //    buttonImage: 'images/calendar.jpg'
                //});

                //CALCULADO
                //$("[id$=txtHoraLlegada]").timepicker({ timeFormat: 'HH:mm' });

                $("[id$=txtFechaPartida]").datepicker({
                    showOn: 'button',
                    buttonImageOnly: true,
                    buttonImage: 'images/calendar.jpg',
                    dateFormat: 'dd/mm/yy'
                });
                //minDate: $.datepicker.formatDate('dd/mm/yy', new Date())

                $("[id$=txtHoraPartida]").timepicker({ timeFormat: 'HH:mm' });
            });

            $("#dialogError").bind("dialogclose", function (event, ui) {
                location.href = 'Index.aspx';
            });

            $("#dialog").bind("dialogclose", function (event, ui) {
                location.href = 'ActualizarProgramacionRuta.aspx';
            });

            //f_ocultar(false, "divRuta", true);

            getDisabledControls();
            getRutas();
            getConductores();
            getBuses();            
        });

        function getConductores() {
            
            var idProgramacionRuta = $("#<%=txtCodigoProgramacionRuta.ClientID %>").val();
            var ruta = $("#<%=txtCodigoRuta.ClientID %>").val();
            var origen = $("#<%=txtFechaPartida.ClientID %>").val() + " " + $("#<%=txtHoraPartida.ClientID %>").val();
            var destino = $("#<%=txtFechaLlegada.ClientID %>").val() + " " + $("#<%=txtHoraLlegada.ClientID %>").val();

            if (ruta == "" || $("#<%=txtFechaPartida.ClientID %>").val() == "" || $("#<%=txtHoraPartida.ClientID %>").val() == "" || $("#<%=txtFechaLlegada.ClientID %>").val() == "" || $("#<%=txtHoraLlegada.ClientID %>").val() == "")
                return;

            $.ajax({
                type: "POST",
                url: "Metodos.aspx/ObtenerConductores",
                data: "{'idRuta': '" + ruta + "','fechaOrigen': '" + origen + "', 'fechaDestino': '" + destino + "', 'idProgramacionRuta': '" + idProgramacionRuta + "'}",
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                success: function (response) {
                    var conductores = (typeof response.d) == 'string' ?
                                       eval('(' + response.d + ')') :
                                       response.d;

                    if (conductores.length > 0) {
                        $("#<%=tablaConductor.ClientID %>").empty();
                        $("#<%=tablaConductor.ClientID %>").append("<tr><td><b>Nombres y Apellidos</b></td>" +
                        "<td><b>Documento de Identidad</b></td>" +
                        "<td><b>Asignar Conductor Principal</b></td>" +
                        "<td><b>Asignar Conductor de Reemplazo</b></td>" +
                        "</tr>");

                        var principal = $("#<%=txtCodigoConductorPrincipal.ClientID %>").val();
                        var reemplazo = $("#<%=txtCodigoConductorReemplazo.ClientID %>").val();

                        var valchecked = "";
                        var valcheckedRee = "";
                        for (var i = 0; i < conductores.length; i++) {
                            if (principal == conductores[i].Codigo) {
                                valchecked = "checked";
                            } else {
                                valchecked = "";
                            }

                            if (reemplazo == conductores[i].Codigo) {
                                valcheckedRee = "checked";
                            } else {
                                valcheckedRee = "";
                            }

                            $("#<%=tablaConductor.ClientID %>").append('<tr>' +
                                                  '<td>' + conductores[i].Nombres + '</td>' +
                                                  '<td>' + conductores[i].dni + '</td>' +
                                                  '<td><input type="radio" ' + valchecked + ' name="conductorPrincipal" value="' + conductores[i].Codigo + '" onclick="javascript:f_cambiarConductorPrincipal(' + conductores[i].Codigo + ')"></td>' +
                                                  '<td><input type="radio" ' + valcheckedRee + ' name="conductorReemplazo" value="' + conductores[i].Codigo + '" onclick="javascript:f_cambiarConductorReemplazo(' + conductores[i].Codigo + ')"></td>' +
                                                '</tr>');                        
                        }
                    } else {
                        $("#<%=tablaConductor.ClientID %>").empty();
                        $("#<%=tablaConductor.ClientID %>").append("<tr><td><b>No se encontraron conductores.</b></td></tr>");
                    }
                },
                error: function (result) {
                    ShowMessageJustAlert('ERROR ' + result.status + ' ' + result.statusText);
                }
            });
        }

        function f_cambiarConductorPrincipal(value)
        {
            if ($("#<%=txtCodigoConductorReemplazo.ClientID %>").val() == value) {
                ShowMessageJustAlert("El conductor de reemplazo seleccionado debe ser diferente al conductor principal");
                $("input[name=conductorPrincipal][value=" + $("#<%=txtCodigoConductorPrincipal.ClientID %>").val() + "]").attr('checked', 'checked');
            }else {
                $("#<%=txtCodigoConductorPrincipal.ClientID %>").val(value);
            }
        }

        function f_cambiarConductorReemplazo(value)
        {
            if ($("#<%=txtCodigoConductorPrincipal.ClientID %>").val() == value) {
                ShowMessageJustAlert("El conductor principal seleccionado debe ser diferente al conductor de reemplazo");
                $("input[name=conductorReemplazo][value=" + $("#<%=txtCodigoConductorReemplazo.ClientID %>").val() + "]").attr('checked', 'checked');
            } else {
                $("#<%=txtCodigoConductorReemplazo.ClientID %>").val(value);
            }
        }

        function f_cambiarBus(value)
        {
            $("#<%=txtCodigoBus.ClientID %>").val(value);
        }

        function getBuses() {
            
            var idProgramacionRuta = $("#<%=txtCodigoProgramacionRuta.ClientID %>").val();
            var ruta = $("#<%=txtCodigoRuta.ClientID %>").val();
            var origen = $("#<%=txtFechaPartida.ClientID %>").val() + " " + $("#<%=txtHoraPartida.ClientID %>").val();
            var destino = $("#<%=txtFechaLlegada.ClientID %>").val() + " " + $("#<%=txtHoraLlegada.ClientID %>").val();

            if (ruta == "" || $("#<%=txtFechaPartida.ClientID %>").val() == "" || $("#<%=txtHoraPartida.ClientID %>").val() == "" || $("#<%=txtFechaLlegada.ClientID %>").val() == "" || $("#<%=txtHoraLlegada.ClientID %>").val() == "")
                return;

            $.ajax({
                type: "POST",
                url: "Metodos.aspx/ObtenerBuses",
                data: "{'idRuta': '" + ruta + "','fechaOrigen': '" + origen + "', 'fechaDestino': '" + destino + "', 'idProgramacionRuta': '" + idProgramacionRuta + "'}",
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                success: function (response) {
                    var buses = (typeof response.d) == 'string' ?
                                       eval('(' + response.d + ')') :
                                       response.d;

                    if (buses.length > 0) {
                        $("#<%=tablaBus.ClientID %>").empty();
                        $("#<%=tablaBus.ClientID %>").append("<tr><td><b>Tipo de Bus</b></td>" +
                        "<td><b>Marca</b></td>" +
                        "<td><b>Modelo</b></td>" +
                        "<td><b>Placa</b></td>" +
                        "<td><b>Seleccionar</b></td>" +
                        "</tr>");

                        var bus = $("#<%=txtCodigoBus.ClientID %>").val();
                        var valchecked = "";

                        for (var i = 0; i < buses.length; i++) {
                            if (bus == buses[i].Codigo) {
                                valchecked = "checked";
                            } else {
                                valchecked = "";
                            }

                            $("#<%=tablaBus.ClientID %>").append('<tr>' +
                                                  '<td>' + buses[i].TipoTransporte + '</td>' +
                                                  '<td>' + buses[i].Marca + '</td>' +
                                                  '<td>' + buses[i].Modelo + '</td>' +
                                                  '<td>' + buses[i].Placa + '</td>' +
                                                  '<td><input type="radio" ' + valchecked + ' name="bus" value="' + buses[i].Codigo + '" onclick="javascript:f_cambiarBus(' + buses[i].Codigo + ')"></td>' +
                                                '</tr>');
                        }
                    } else {
                        $("#<%=tablaBus.ClientID %>").empty();
                        $("#<%=tablaBus.ClientID %>").append("<tr><td><b>No se encontraron buses.</b></td></tr>");
                    }
                },
                error: function (result) {
                    ShowMessageJustAlert('ERROR ' + result.status + ' ' + result.statusText);
                }
            });
        }

        function f_cambiarRuta(value)
        {
            $("#<%=txtCodigoRuta.ClientID %>").val(value);
            $("#<%=txtCodigoBus.ClientID %>").val("");
            $("#<%=txtCodigoConductorPrincipal.ClientID %>").val("");
            $("#<%=txtCodigoConductorReemplazo.ClientID %>").val("");
            f_generaFechaLlegada();            
        }

        function f_generaFechaLlegada()
        {
            var idRuta = $("#<%=txtCodigoRuta.ClientID %>").val();

            if ($.trim($("#<%=txtFechaPartida.ClientID %>").val()) == "" || $.trim($("#<%=txtHoraPartida.ClientID %>").val()) == "" || $.trim(idRuta) == "")
                return;

            var FechaPartida = $("#<%=txtFechaPartida.ClientID %>").val() + " " + $("#<%=txtHoraPartida.ClientID %>").val();
            $("#<%=txtFechaPartidaFinal.ClientID %>").val(FechaPartida);

            $.ajax({
                type: "POST",
                url: "Metodos.aspx/CalcularFechaLlegada",
                data: "{'idRuta': '" + idRuta + "','fechaOrigen': '" + FechaPartida + "'}",
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                success: function (response) {
                    if ((typeof response.d) == 'string')
                    {
                        if (response.d != "") {
                            $("#<%=txtFechaLlegadaFinal.ClientID %>").val(response.d);

                            var array = response.d.split(" ");
                            $("#<%=txtFechaLlegada.ClientID %>").val(array[0])
                            $("#<%=txtHoraLlegada.ClientID %>").val(array[1]);

                            f_refrescarBusesConductores();
                        }
                    }
                },
                error: function (result) {
                    ShowMessageJustAlert('ERROR ' + result.status + ' ' + result.statusText);
                }
            });
        }

        function f_refrescarBusesConductores()
        {
            getBuses();
            getConductores();
        }

        function getRutas() {
            var ruta = $("#<%=txtCodigoRuta.ClientID %>").val();

            $.ajax({
                type: "POST",
                url: "Metodos.aspx/ObtenerRutas",
                data: "",
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                success: function (response) {
                    var rutas = (typeof response.d) == 'string' ?
                                       eval('(' + response.d + ')') :
                                       response.d;

                    if (rutas.length > 0) {
                        $("#<%=tablaRuta.ClientID %>").empty();
                        $("#<%=tablaRuta.ClientID %>").append("<tr><td><b>Lugar Origen</b></td>" +
                        "<td><b>Lugar Destino</b></td>" +
                        "<td><b>Seleccionar</b></td>" +
                        "</tr>");
                        var valchecked = "";
                        for (var i = 0; i < rutas.length; i++) {
                            if (ruta == rutas[i].Codigo)
                            {
                                valchecked = "checked";
                            } else {
                                valchecked = "";
                            }

                            $("#<%=tablaRuta.ClientID %>").append('<tr>' +
                                                  '<td>' + rutas[i].Origen + '</td>' +
                                                  '<td>' + rutas[i].Destino + '</td>' +
                                                  '<td><input type="radio" ' + valchecked + ' name="ruta" value="' + rutas[i].Codigo + '" onclick="javascript:f_cambiarRuta(' + rutas[i].Codigo + ')"></td>' +
                                                '</tr>');
                        }
                    } else {
                        $("#<%=tablaRuta.ClientID %>").empty();
                        $("#<%=tablaRuta.ClientID %>").append("<tr><td><b>No se encontraron rutas.</b></td></tr>");
                    }
                },
                error: function (result) {
                    ShowMessageJustAlert('ERROR ' + result.status + ' ' + result.statusText);
                }
            });
        }
    
    </script>
    <div id="dialog" style="display: none"></div>
    <div id="dialogError" style="display: none"></div>
    <div id="dialogJustAlert" style="display: none"></div>    
    <div class="divTitulo">
        Actualizar Programación de Ruta
    </div>
    <div class="divContenido">
        <fieldset class="validationGroup">
            <div class="divFila">
                <div class="divColumna">
                    <div class="divTexto">                        
                        <asp:HiddenField id="txtCodigoProgramacionRuta" runat="server" Value=""/>
                        <asp:HiddenField id="txtCodigoConductorPrincipal" runat="server" Value=""/>
                        <asp:HiddenField id="txtCodigoConductorReemplazo" runat="server" Value=""/>
                        <asp:HiddenField id="txtCodigoBus" runat="server" Value=""/>
                        <asp:HiddenField id="txtCodigoRuta" runat="server" Value=""/>
                        <asp:HiddenField id="txtTablaConductor" runat="server" Value=""/>                        
                        <asp:HiddenField id="txtTablaBus" runat="server" Value=""/>                        
                        <asp:HiddenField ID="txtFechaLlegadaFinal" runat="server" Value=""/>
                        <asp:HiddenField ID="txtFechaPartidaFinal" runat="server" Value=""/>
                    </div>
                </div>
            </div>
            <div class="divPanel" id="divRuta">
                <div class="divSeparador">
                    Listado de Rutas disponibles
                </div>
                <div class="divFila tableDesign">
                    <table id="tablaRuta" border="1" runat="server" />                    
                </div>
            </div>
            <div class="divPanel" id="divGeneral">
                <div class="divFila">
                    <div class="divColumna">
                        <div class="divTexto">
                            Fecha Partida:
                        </div>
                        <div class="divControl">
                            <asp:TextBox ID="txtFechaPartida" runat="server" Width="70" ReadOnly="true" />
                            <asp:TextBox ID="txtHoraPartida" runat="server" Width="50" ReadOnly="true"/>
                        </div>
                    </div>
                    <div class="divColumna">
                        <div class="divTexto">
                            Fecha Llegada:
                        </div>
                        <div class="divControl">
                            <asp:TextBox ID="txtFechaLlegada" runat="server" Width="70" ReadOnly="true"/>
                            <asp:TextBox ID="txtHoraLlegada" runat="server" Width="50" ReadOnly="true"/>
                        </div>
                    </div>
                </div>                
            </div>
            <div class="divPanel" id="divConductores">
                <div class="divSeparador">
                    Listado de Conductores Disponibles según lugar de Origen de la ruta
                </div>
                <div class="divFila tableDesign">
                    <table id="tablaConductor" border="1" runat="server" />                    
                </div>
            </div>
            <div class="divPanel" id="divBuses">
                <div class="divSeparador">
                    Listado de Buses Disponibles según lugar de Origen de la ruta
                </div>
                <div class="divFila tableDesign">
                    <table id="tablaBus" border="1" runat="server" />                    
                </div>
            </div>
            <div class="divPanel" id="divEstado">
                <div class="divFilaExtra">
                    <div class="divColumnaExtra">
                        <div class="divTexto">
                            Observaciones:
                        </div>
                        <div class="divControl">
                            <asp:TextBox ID="txtObservaciones" runat="server" TextMode="MultiLine" Columns="50" Rows="2"></asp:TextBox>
                        </div>
                    </div>                    
                </div>
                <div class="divFila">
                    <div class="divColumna">
                        <div class="divTexto">
                            Estado:
                        </div>
                        <div class="divControl">
                            <asp:Label ID="lblEstado" runat="server" ></asp:Label>
                        </div>
                    </div>
                </div>
                <div class="divFila">
                    <div class="divColumna">
                        <asp:Button ID="btnGuardar" runat="server" Text="Guardar" CssClass="causesValidation" OnClick="btnGuardar_Click"  OnClientClick="return f_validacionDatos();"/>
                        <button type="button" id="btnRegresar" onclick="javascript:f_regresar();">Regresar</button>
                    </div>
                </div>
            </div>
        </fieldset>
    </div>
</asp:Content>
